www.gusucode.com > 基于Visual C++高级界面特效制作百例源码程序 > 基于Visual C++高级界面特效制作百例源码程序/code/char08/ToolbarMenuDemoMDI/SpawnMDIChildWnd.cpp
// SpawnMDIChildWnd.cpp : implementation file // #include "stdafx.h" #include "ToolbarMenuDemoMDI.h" #include "SpawnMDIChildWnd.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSpawnMDIChildWnd IMPLEMENT_DYNCREATE(CSpawnMDIChildWnd, CMDIChildWnd) CSpawnMDIChildWnd::CSpawnMDIChildWnd() { } CSpawnMDIChildWnd::~CSpawnMDIChildWnd() { } BEGIN_MESSAGE_MAP(CSpawnMDIChildWnd, CMDIChildWnd) //{{AFX_MSG_MAP(CSpawnMDIChildWnd) ON_WM_DRAWITEM() ON_WM_MEASUREITEM() ON_WM_INITMENUPOPUP() ON_WM_MENUCHAR() ON_WM_CREATE() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSpawnMDIChildWnd message handlers void CSpawnMDIChildWnd::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) { if (!cSpawn.DrawItem(lpDrawItemStruct)) CMDIChildWnd::OnDrawItem(nIDCtl, lpDrawItemStruct); } void CSpawnMDIChildWnd::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) { if (!cSpawn.MeasureItem(lpMeasureItemStruct)) CMDIChildWnd::OnMeasureItem(nIDCtl, lpMeasureItemStruct); } void CSpawnMDIChildWnd::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu) { CMDIChildWnd::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu); cSpawn.RemapMenu(pPopupMenu); } LRESULT CSpawnMDIChildWnd::OnMenuChar(UINT nChar, UINT nFlags, CMenu* pMenu) { CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL && pSysMenu->GetSafeHmenu() == pMenu->GetSafeHmenu()) { LRESULT lRes = 0; cSpawn.FindKeyboardShortcut(nChar, nFlags, pMenu, lRes); return lRes; } return CMDIChildWnd::OnMenuChar(nChar, nFlags, pMenu); } int CSpawnMDIChildWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1) return -1; return 0; }